package day2;

import java.util.Scanner;

// 倒置字符串
// 先整个字符串逆置，然后再对单词进行逆置
public class Main2 {
    // 逆置函数
    public static void reverse(char[] array,int start,int end) {
        while (start < end) {
            char tmp = array[start];
            array[start] = array[end];
            array[end] = tmp;
            start++;
            end--;
        }
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        char[] ch = str.toCharArray(); // 将字符串转为数组形式
        int len = ch.length;
        // 1. 整体进行逆置
        reverse(ch,0,len-1);
        // 2. 再次遍历寻找单词进行逆置
        int i = 0;
        while (i < len){
            // 要记录每个单词的始末位置：要对每个单词进行逆置
            // 单词之间的分割：空格
            int j = i; //每个单词的起始位置
            // 使用循环找每个单词
            while (j<len && ch[j]!=' ') {
                j++;
            }
            // 出来说明此时遇到空格 or ==length(也就是到最后）
            // 所以进行判断
            if(j < len) {
                // 说明是遇到空格：j的位置是空格
                // 逆置单词 + 更新下一个单词的i值（起始位置）
                reverse(ch,i,j-1);
                i = j+1;
            } else {
                // 说明是走到了最后
                // 同样逆置单词 + 更新i值
                reverse(ch,i,j-1);
                i = j;
            }
        }
        // 将数组有转为字符串
        String new_str = new String(ch);
        System.out.println(new_str);
    }
}


//import java.util.Scanner;
// 字符串倒置（字符串长度不超过100
//public class Main2 {
//    public static void main(String[] args) {
//        // 错误版本：
//
//        Scanner in = new Scanner(System.in);
//        // 输入字符串：
//        String str = in.nextLine();
//        // 进行倒置：单词倒置
//        // 单词数==空格数+1
//        for (int i = str.length()-1; i >= 0; i--) {
//            int tmp = i;
//            if(str.charAt(i) == ' ') {
//                for (int j = i+1; j <= tmp; j++) {
//                    System.out.print(str.charAt(j) + " ");
//                }
//            }
//        }
//    }
//}
